package cn.tedu.api;

import java.util.Arrays;

/*本类用于测试String类的常用方法*/
public class TestString2 {
    public static void main(String[] args) {
//        创建字符串方式1--堆中常量池
        String s1= "ABC";
//
        char[] c = {'a','b','c'};
        String s2=new String(c);


        System.out.println(s1);
        System.out.println(s2);

//      测试常用方法
        /*String也重写了hashCode(),根据字符串的具体内容生成哈希码值
        * 所以虽然s1与s2的地址值不同,此时生成的哈希码值一致*/
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());

        System.out.println(s1.equals(s2));


        System.out.println(s1.toString());

        System.out.println(s1);


        System.out.println(s1.length());//查看当前字符串的长度

        System.out.println(s1.toUpperCase());//ABC,将本字符串转为全大写
        System.out.println(s1.toLowerCase());//abc,将本字符串转为全小写

        System.out.println(s1.startsWith("a"));//true,判断当前字符串是否以a开头
        System.out.println(s1.endsWith("a"));//false,判断当前字符串是否以a结尾

        System.out.println(s1.charAt(1));//b,根据下标获取字符串指定位置上的字符

        String s3 = "abcbdbeba";
        System.out.println(s3.indexOf("b"));
        System.out.println(s3.lastIndexOf("b"));//指定字符的最后一次出现的下标

        System.out.println(s2.concat("cxy"));//abccxy,拼接字符串
        System.out.println(s2);//abc,注意:不会改变原字符串s2

        String s4= s2.concat("aaa");
        System.out.println(s4);

        String s5 = "     hh    hhhhhhh  ";
        System.out.println(s5.trim());//hh    hhhhhhh,用于去除字符串首尾两端的空格

        String s6 = "abcdefgh";
        System.out.println(s6.substring(3));//defgh
        System.out.println(s6.substring(3,6));//def

        String s7 = "afbfcfdfe";
        String[] fs = s7.split("f");//以指定的字符f分割字符串s7
        System.out.println(Arrays.toString(fs));//要使用数组工具类打印数组的具体元素

//        System.out.println(String.valueOf(10));//10
        System.out.println(String.valueOf(10)+10);//1010,将int类型的参数10,转为String类型的"10",所以是拼接的效果
        System.out.println(20+10);//30
        System.out.println("20"+10);//2010

        byte[] bytes = s2.getBytes();//将byte类型的数组
        System.out.println(Arrays.toString(bytes));

    }
}
